<?php

namespace Controller;

class LoginController{				
						
	/**
	 * Hanterar inloggning av användare
	 * @param Objekt $database ett databasobjekt
	 */
	public function DoControll($database){
			$LoginHandler = new \Model\Loginhandler($database);
			$LoginView = new \View\LoginView();
				
			// Kontrollerar om användaren är inloggad				
			if ($LoginHandler->IsLoggedIn()){
				// Kontrollerar om användaren vill logga ut					
				
				if($LoginView->TriedToLogOut()){
					
					// Loggar ut användaren
					$LoginHandler->DoLogout();
					
					// Tar bort eventuell cookie genom att anropa en funktion i LoginView
					if($LoginView->FindCookie()){
						$LoginView->DestroyCookie();
					}
				}
			}
			else{		
				// Om användaren inte är inloggad kontrolleras det om användaren vill logga in
				if($LoginView->TriedToLogIn()){
										
					// Här hämtas det inskrivna användarnamnet och lösenordet ut och läggs i variabler
					$username = $LoginView->GetUserName();
					$password = $LoginView->GetPassword();
					
					// Försöker logga in användaren med de inloggningsuppgifter som har skrivits in
					if($LoginHandler->Dologin($username, $password)){
						
						// Kontrollerar om användaren har valt att fortsätta vara inloggad och skapar isåfall en cookie med användarnamn och lösenord
						if($LoginView->KeepLoggedIn()){
							$LoginView->CreateCookie($username, $password);											
						}					
					}
					else{
						// Skriver ut felmeddelande ifall det inte gick att logga in
						$output = $LoginView->CreateLoginBox(\View\LoginView::ERROR_MESSAGE);
						return $output;
					}
				}
			}
			
			// Bestämmer vad som skall skrivas ut beroende på om användaren är inloggad eller ej
			if ($LoginHandler->IsLoggedIn()) {
				//Anropar min vy för att få html till ett utloggningsformulär som skall visas för användaren istället för ett inloggninsformulär
				$currentUser = $LoginHandler->GetCurrentUsername();	
				$output = $LoginView->CreateLogoutBox(\View\LoginView::LOGGED_IN_MESSAGE, $currentUser);
			} else {
				// Anropar min vy för att få html till ett inloggninsfomulär
				$output = $LoginView->CreateLoginBox("");
			}
			// Returnerar htmlkod till index
			return $output;
	}		
}